<template>
  <view>
    <video id="video" style="width: 100%; height: 300px"></video>
    <button @click="startScan">开始扫描</button>
  </view>
</template>

<script>
// #ifdef H5
import { BrowserQRCodeReader } from '@zxing/library';
// #endif

export default {
  methods: {
    startScan() {
      // #ifdef H5
      const codeReader = new BrowserQRCodeReader();
      codeReader
        .decodeFromInputVideoDevice(undefined, 'video')
        .then((result) => {
          uni.showToast({
            title: `扫描结果: ${result.text}`,
            icon: 'none'
          });
        })
        .catch((err) => {
          uni.showToast({
            title: '扫描失败，请重试',
            icon: 'none'
          });
          console.error('扫描失败:', err);
        });
      // #endif

      // #ifdef MP-WEIXIN || APP-PLUS
      uni.scanCode({
        success: (res) => {
          uni.showToast({
            title: `扫描结果: ${res.result}`,
            icon: 'none'
          });
        },
        fail: (err) => {
          uni.showToast({
            title: '扫描失败，请重试',
            icon: 'none'
          });
          console.error('扫描失败:', err);
        }
      });
      // #endif
    }
  }
};
</script>
